Platform Explorer / Nuxeo Platform 2023.10

Extension point lifecycle

Documentation

Extension point for registering life cycle definition.

A life cycle is a state-transition model described as an XML document.

A life cycle within Nuxeo Core describes only the states and the transitions without any security policy whatsoever. For instance, the workflow service (or BPM service) will be responsible of the security policy and actors involved.

Contribution Descriptors

  • Class: org.nuxeo.ecm.core.lifecycle.extensions.LifeCycleDescriptor

Existing Contributions

Contributions are presented in the same order as the registration order on this extension point. This order is displayed before the contribution name, in brackets.

  • nuxeo-apidoc-repo-2023.0.3.jar /OSGI-INF/life-cycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="project" name="explorer_default">
          <transitions>
            <transition destinationState="approved" name="approve">
              <description>Approve the content</description>
            </transition>
            <transition destinationState="obsolete" name="obsolete">
              <description>Content becomes obsolete</description>
            </transition>
            <transition destinationState="deleted" name="delete">
              <description>Move document to trash (temporary delete)</description>
            </transition>
            <transition destinationState="project" name="undelete">
              <description>Recover the document from trash</description>
            </transition>
            <transition destinationState="project" name="backToProject">
              <description>Recover the document from trash</description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" initial="true" name="project">
              <transitions>
                <transition>approve</transition>
                <transition>obsolete</transition>
                <transition>delete</transition>
              </transitions>
            </state>
            <state description="Content has been validated" name="approved">
              <transitions>
                <transition>delete</transition>
                <transition>backToProject</transition>
              </transitions>
            </state>
            <state description="Content is obsolete" name="obsolete">
              <transitions>
                <transition>delete</transition>
                <transition>backToProject</transition>
              </transitions>
            </state>
            <state description="Document is deleted" name="deleted">
              <transitions>
                <transition>undelete</transition>
              </transitions>
            </state>
          </states>
        </lifecycle>
      </extension>
  • nuxeo-aspera-core-2023.4.1.jar /OSGI-INF/aspera-doctypes.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
        <lifecycle defaultInitial="draft" name="transfer_lifecyle">
          <transitions>
            <transition destinationState="started" name="to_started">
              <description/>
            </transition>
            <transition destinationState="pending" name="to_pending">
              <description/>
            </transition>
            <transition destinationState="completed" name="to_completed">
              <description/>
            </transition>
            <transition destinationState="failed" name="to_failed">
              <description/>
            </transition>
          </transitions>
          <states>
            <state description="When the transfer is not started - can be modified" initial="true" name="draft">
              <transitions>
                <transition>to_started</transition>
              </transitions>
            </state>
            <state description="When the transfer started (no files uploaded yet) - cannot be modified" name="started">
              <transitions>
                <transition>to_started</transition>
                <transition>to_pending</transition>
              </transitions>
            </state>
            <state description="When the transfer started to have files uploaded - cannot be modified" name="pending">
              <transitions>
                <transition>to_failed</transition>
                <transition>to_completed</transition>
              </transitions>
            </state>
            <state description="When the transfer is completed - cannot be modified" name="completed">
              <transitions>
    
              </transitions>
            </state>
            <state description="When the transfer is completed but some files failed - can be modified" name="failed">
              <transitions>
                <transition>to_pending</transition>
              </transitions>
            </state>
          </states>
        </lifecycle>
      </extension>
  • nuxeo-core-2023.10.13.jar /OSGI-INF/LifeCycleCoreExtensions.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <documentation>Nuxeo core default life cycle definition.</documentation>
    
        <lifecycle defaultInitial="project" name="default">
          <transitions>
            <transition destinationState="approved" name="approve">
              <description>Approve the content</description>
            </transition>
            <transition destinationState="obsolete" name="obsolete">
              <description>Content becomes obsolete</description>
            </transition>
            <transition destinationState="deleted" name="delete">
              <description>Move document to trash (temporary delete)</description>
            </transition>
            <transition destinationState="project" name="undelete">
              <description>Recover the document from trash</description>
            </transition>
            <transition destinationState="project" name="backToProject">
              <description>Recover the document from trash</description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" initial="true" name="project">
              <transitions>
                <transition>approve</transition>
                <transition>obsolete</transition>
                <transition>delete</transition>
              </transitions>
            </state>
            <state description="Content has been validated" name="approved">
              <transitions>
                <transition>delete</transition>
                <transition>backToProject</transition>
              </transitions>
            </state>
            <state description="Content is obsolete" name="obsolete">
              <transitions>
                <transition>delete</transition>
                <transition>backToProject</transition>
              </transitions>
            </state>
            <state description="Document is deleted" name="deleted">
              <transitions>
                <transition>undelete</transition>
              </transitions>
            </state>
          </states>
        </lifecycle>
      </extension>
  • nuxeo-invite-2023.10.13.jar /OSGI-INF/user-registration-lifecycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="created" name="registrationRequest">
          <transitions>
            <transition destinationState="approved" name="approve">
              <description>Approve the registration request</description>
            </transition>
            <transition destinationState="rejected" name="reject">
              <description>Reject the registration request</description>
            </transition>
            <transition destinationState="accepted" name="accept">
              <description>Accept the registration request</description>
            </transition>
            <transition destinationState="processed" name="process">
              <description>Process the registration request</description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" initial="true" name="created">
              <transitions>
                <transition>approve</transition>
                <transition>reject</transition>
              </transitions>
            </state>
            <state description="Registration has been approved" name="approved">
              <transitions>
                <transition>accept</transition>
              </transitions>
            </state>
            <state description="Registration has been rejected" name="rejected">
              <transitions/>
            </state>
            <state description="Registration has been accepted" name="accepted">
              <transitions>
                <transition>process</transition>
              </transitions>
            </state>
            <state description="Registration request has been processed" name="processed">
              <transitions/>
            </state>
          </states>
        </lifecycle>
      </extension>
  • nuxeo-platform-comment-2023.10.13.jar /OSGI-INF/comment-life-cycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="moderation_pending" name="comment_moderation">
    
          <transitions>
            <transition destinationState="moderation_published" name="moderation_publish">
              <description>Approve the comment</description>
            </transition>
            <transition destinationState="moderation_rejected" name="moderation_reject">
              <description>Reject the comment</description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" name="moderation_pending">
              <transitions>
                <transition>moderation_publish</transition>
                <transition>moderation_reject</transition>
              </transitions>
            </state>
            <state description="Comment published" name="moderation_published"/>
            <state description="Comment Rejected" name="moderation_rejected"/>
          </states>
    
        </lifecycle>
    
      </extension>
  • nuxeo-platform-task-core-2023.10.13.jar /OSGI-INF/task-lifecycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="opened" name="task">
          <transitions>
            <transition destinationState="ended" name="end">
              <description>End the task</description>
            </transition>
            <transition destinationState="cancelled" name="cancel">
              <description>Cancel the task</description>
            </transition>
          </transitions>
          <states>
            <state description="Task is open." name="opened">
              <transitions>
                <transition>end</transition>
                <transition>cancel</transition>
              </transitions>
            </state>
            <state description="task has been ended" name="ended">
            </state>
            <state description="Task is cancelled" name="cancelled">
            </state>
          </states>
        </lifecycle>
    
      </extension>
  • nuxeo-routing-core-2023.10.13.jar /OSGI-INF/document-routing-life-cycle-contrib.xml
    <extension point="lifecycle" target="org.nuxeo.ecm.core.lifecycle.LifeCycleService">
    
        <lifecycle defaultInitial="draft" name="documentRouteElement">
          <transitions>
            <transition destinationState="validated" name="toValidated">
              <description>the model is validated</description>
            </transition>
            <transition destinationState="ready" name="toReady">
              <description>the element is ready to be executed</description>
            </transition>
            <transition destinationState="running" name="toRunning">
              <description>the element starts</description>
            </transition>
            <transition destinationState="done" name="toDone">
              <description>the element finishes</description>
            </transition>
            <transition destinationState="waiting" name="toWaiting">
              <description>the element waits for a join</description>
            </transition>
            <transition destinationState="suspended" name="toSuspended">
              <description>the element waits for a task</description>
            </transition>
            <transition destinationState="ready" name="backToReady">
              <description>the element finishes</description>
            </transition>
            <transition destinationState="canceled" name="toCanceled">
              <description>cancel this element</description>
            </transition>
            <transition destinationState="draft" name="toDraft">
              <description>
                go to the draft state, this is done when creating a new instance
                from a model
              </description>
            </transition>
          </transitions>
          <states>
            <state description="Default state" initial="true" name="draft">
              <transitions>
                <transition>toValidated</transition>
              </transitions>
            </state>
            <state description="The element is validated" initial="true" name="validated">
              <transitions>
                <transition>toReady</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element is ready" initial="true" name="ready">
              <transitions>
                <transition>toRunning</transition>
                <transition>toWaiting</transition>
                <transition>toSuspended</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element is running" name="running">
              <transitions>
                <transition>toDone</transition>
                <transition>backToReady</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element is done" name="done">
              <transitions>
                <transition>backToReady</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element waits for a join" name="waiting">
              <transitions>
                <transition>toReady</transition>
                <transition>toSuspended</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element waits for a task" name="suspended">
              <transitions>
                <transition>toReady</transition>
                <transition>toWaiting</transition>
                <transition>toCanceled</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
            <state description="The element is cancelled" name="canceled">
              <transitions>
                <transition>backToReady</transition>
                <transition>toDraft</transition>
              </transitions>
            </state>
          </states>
        </lifecycle>
      </extension>